home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Utilities Professional 1-1500
/
Utilities Professional 1-1500 (1994)(WPD)[!].iso
/
12511500
/
var1370.dms
/
var1370.adf
/
Sources
/
ciaint1.pp
/
ciaint1
Wrap
Text File
|
1990-09-13
|
1KB
|
82 lines
;---- CIA Interrupt ----
ciatalo = $400
ciatahi = $500
ciatblo = $600
ciatbhi = $700
ciacra = $E00
ciacrb = $F00
SetCIAInt
MOVEQ #0,D0
LEA CIAAname(PC),A1
MOVE.L 4.W,A6
JSR LVOOpenResource(A6)
MOVE.L D0,CIAAbase
BEQ Return1
MOVE.L D0,A6
MOVE.L GfxBase,A0
MOVE.W 206(A0),D0 ; DisplayFlags
BTST #2,D0 ; PAL?
BEQ.S WasNTSC
MOVE.L #1773447,D7 ; PAL
BRA.S sciask
WasNTSC MOVE.L #1789773,D7 ; NTSC
sciask MOVE.L D7,TimerValue
DIVU #125,D7 ; Default to normal 50 Hz timer
LEA CIAAaddress,A5
LEA MusicIntServer(PC),A1
MOVEQ #1,D0 ; Bit 1: Timer B
JSR AddICRVector(A6)
MOVE.L D0,TimerFlag
BNE.S TryTimerA
MOVE.B D7,ciatblo(A5)
LSR.W #8,D7
MOVE.B D7,ciatbhi(A5)
BSET #0,ciacrb(A5)
BRA SetTempo
TryTimerA
LEA MusicIntServer(PC),A1
MOVEQ #0,D0 ; Bit 0: Timer A
JSR AddICRVector(A6)
TST.L D0
BNE.S CIAError
MOVE.B D7,ciatalo(A5)
LSR.W #8,D7
MOVE.B D7,ciatahi(A5)
BSET #0,ciacra(A5)
BRA SetTempo
CIAError
CLR.L CIAAbase
RTS
ResetCIAInt
MOVE.L CIAAbase(PC),D0
BEQ Return1
CLR.L CIAAbase
MOVE.L D0,A6
LEA CIAAaddress,A5
TST.L TimerFlag
BNE.S ResTimerA
BCLR #0,ciacrb(A5)
MOVEQ #1,D0
BRA.S RemInt
ResTimerA
BCLR #0,ciacra(A5)
MOVEQ #0,D0
RemInt LEA MusicIntServer(PC),A1
MOVEQ #0,d0
JSR RemICRVector(A6)
RTS
CIAAname dc.b 'ciaa.resource',0
CIAAbase dc.l 0
TimerFlag dc.l 0
TimerValue dc.l 0